草庐IT

c++ - 比较 std::function<>

全部标签

c - 为什么这个 MSVC API 是这样定义的?

errno_t_dupenv_s(char**buffer,size_t*sizeInBytes,constchar*varname);我有几个问题:为什么需要指向指针(**)的指针而不是指针(*)?为什么sizeInBytes是必需的,strlen(buffer)不可用吗? 最佳答案 msvc下任何以_s为后缀的函数都是安全函数,这意味着它不会对传递的数据的完整性做出任何假设。正是出于这个原因,字符串的长度是必需的,因为您不能假设它以null终止或根本终止(您可能也只想要一半的字符串,但这是副作用)。安全函数都返回错误代码,这样就

windows - 从 "chinese Windows"发送 std::wstring 到 "arabic Windows"

我有一个套接字,我通过它发送序列化的std::wstring,例如,从中文版的Windows到使用阿拉伯语UI的Unix系统。我不明白我的Unix系统(或其他任何系统)如何知道这些std::wstring是中文的,我没有看到“代码页”(又名国家语言?)存储在std中::wstring,我是否必须将自己与可能的每个std::wstring的代码页相关联?我肯定错过了一些东西,因为这看起来是我们相互联系的世界中的一个基本问题......谢谢, 最佳答案 wstring的目的是允许整个Unicode字符集,包括中文和阿拉伯语以及人类已知的

c - FIFO 不会在读取时阻塞

为什么下面的程序不会在第二次read调用时阻塞?intpid=fork();if(pid){intfifo=open("testfifo",O_RDWR);charbuf[20];while(1){read(fifo,buf,10);puts(buf);}}else{intfifo=open("testfifo",O_WRONLY);write(fifo,"teststring",10);close(fifo);}return0;第二个read调用继续返回0,即使fifo变空并且它应该阻塞read调用。我错过了什么吗?操作系统是Windows,管道是用mknodtestfifop创建的

c++ - Windows 中 _strnicmp 的 LPTSTR 等价物是什么?

是否有一个LPTSTR等效于_strnicmp,它接收2个LPTSTR字符串,以及要比较的TCHAR数量?使用cwinapi顺便说一句 最佳答案 它是_tcsncicmp,见thedocumentation. 关于c++-Windows中_strnicmp的LPTSTR等价物是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7525844/

c - Visual Studio 2010 运行时检查失败 #3

看来微软在VS2010上又要适得其反了。这是我的代码#include"string.h"typedefstructs_test{unsignedchara[20];}t_test,*p_test;voidinitialize(t_testt){memset(t.a,0,20);}voidmain(){t_testt;initialize(t);}它抛出Run-TimeCheckFailure#3-Thevariable't'isbeingusedwithoutbeinginitialized.嗯...因为在其他情况下,运行时检查器确实有帮助,所以我不太可能在解决方案中将其关闭。但是我到

c - Windows 服务 C

我已经用C语言编写了一个Windows服务,但是缺少关于用这种语言编写服务的文档意味着我有一些事情需要帮助。我想创建一个配置文件,服务会读取该配置文件以获取一些设置/选项。我想知道最好的方法是什么以及如何去做。服务.exe将与其他文件/程序一起安装在用户指定的位置。我的第一个问题是,我应该将此配置文件保存在与服务.exe相同的目录中,还是应该将其放在我为我的程序创建的%appdata%文件夹中?服务如何找到配置文件。我应该将配置文件的位置存储在注册表中并将注册表项硬编码到服务中吗?或者是否可以安装该服务,使其将配置文件路径作为默认命令行参数?或者我应该将我的配置文件保存在与服务.exe

c# - Windows 应用程序和 Spy++

我不明白为什么我可以使用Spy++获取某些Windows应用程序的句柄、窗口类等。例如,iexplore.exe,它只是不适用于url文本框或任何文本,如果加载页面中有编辑框区域;还有一些Windows应用程序我只得到外层的属性,而它的内部按钮、文本框或组合框是不可访问的。在这些应用程序中,我应该怎么做才能接触到它们?谢谢:) 最佳答案 这些程序使用无窗口控件。他们不使用标准的Windows控件,而是在一个巨大的容器中自行绘制和处理所有内容。 关于c#-Windows应用程序和Spy++

windows - 什么检测图片类型的方法比较靠谱 : content-type or MIME-sniffing?

我想检测Windows应用程序中的图像文件格式。图像要么从网络(通过HTTP)下载,要么从本地文件加载。对于检测从Web下载的文件的图像文件格式,哪种方法更可靠?文件扩展名是最明显的方式,但通常不正确或丢失HTTPheadercontent-type是一个很好的候选者(我可以检查图像类型而无需通过HTTPHEAD命令下载它),但有时它设置不正确MIME嗅探(通过WindowsAPIFindMimeFromData命令或通过手动检查文件内容的已知签名)是我知道的最后一种方法,但我从未使用过它,我不确定它是否可靠那么,我应该使用什么? 最佳答案

c# - 比较多个 arraylist 长度以找到最长的一个

我有6个数组列表,我想在不使用一堆IF语句的情况下知道哪个是最长的。“ifarraylist.count>anotherlist.countThen...”VB.net或C#.Net(4.0)中的示例会很有帮助。arraylist1.countarraylist2.countarraylist3.countarraylist4.countarraylist5.countarraylist6.countDIMlongestAsinteger=....'thelongestarraylistshouldbestoredinthisvariable.谢谢 最佳答案

c - 在 Windows XP 上运行应用程序时出现 "The specified procedure could not be found"错误(异常 c0000139)

我们有一个dll在Vista和Win7上运行良好一段时间,但在XP上运行时,我们在LoadLibrary时遇到错误“找不到指定的过程”()被调用加载它。我已经尝试使用配置文件选项通过DependencyWalker运行它,将全局标志设置为显示加载器快照,我能从中得到的唯一看似有用的信息是:LDR:SnappingimportsforMyDll.dllfromKERNEL32.dllLDR:LdrGetProcedureAddressbyNAME-RtlGetLastWin32ErrorLDR:exceptionc0000139thrownwithinfunctionLdrpSnapIA